package com.yykj.hospital.server.service.banci;

import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
import com.yykj.common.enums.BanCiType;
import com.yykj.common.vo.PageData;
import com.yykj.hospital.client.dto.DoctorAvailableOnlineDTO;
import com.yykj.hospital.client.dto.banci.DoctorAvailableAppointmentDTO;
import com.yykj.hospital.client.dto.banci.HospitalBanCiDTO;
import com.yykj.hospital.client.form.OnlineOrderForm;
import com.yykj.hospital.client.form.banci.AppointmentOrderForm;
import com.yykj.hospital.client.form.banci.BanCIListFrom;
import com.yykj.hospital.client.form.banci.BanCiEditForm;
import com.yykj.hospital.server.dto.banci.*;
import com.yykj.hospital.server.form.DoctorBanCiEditForm;
import com.yykj.hospital.server.form.DoctorVisitForm;
import com.yykj.hospital.server.form.DoctorVisitLevelForm;
import com.yykj.hospital.server.form.DoctorVisitSettingSearchForm;
import com.yykj.hospital.server.model.entity.banci.HospitalDoctorBanCi;
import com.yykj.hospital.server.model.entity.banci.HospitalDoctorVisitSetting;
import org.apache.poi.ss.usermodel.Workbook;

import java.util.List;

public interface BanCiService {
    HospitalBanCiDTO editBanCi(BanCiEditForm form);

    List<HospitalBanCiDTO> listBanCi(Integer hospitalId, BanCiType type, String keyword);

    DoctorVisitSettingDTO editDoctorVisit(DoctorVisitForm form);

    List<DoctorVisitSettingDTO> listDoctorVisit(Integer hospitalId, Integer depId, String keyword);

    DoctorVisitLevelDTO editDoctorVisitLevel(DoctorVisitLevelForm form);

    List<DoctorVisitLevelDTO> listDoctorVisitLevel(Integer hospitalId,Boolean status,String keyword);

    List<DoctorBanCiDTO> editDoctorBanCi(DoctorBanCiEditForm form);

    PageData<DoctorVisitSettingDTO> listDoctorVisitSetting(DoctorVisitSettingSearchForm form );

    void initDefaultHospitalBanCi(Integer hospitalId);

    void initDefaultHospitalDoctorVisitLevel(Integer hospitalId);

    List<HospitalDoctorBanCi> getDoctorBanCiList(BanCIListFrom form);

    void adjustOnlineBanCi(AdjustOnlineBanCiForm form);

    void adjustAppointmentBanCi(AdjustAppointmentBanCiForm form);

    DoctorAvailableAppointmentDTO changeAvailableAppointmentCnt(AppointmentOrderForm form);

    DoctorAvailableOnlineDTO changeAvailableOnlineCnt(OnlineOrderForm form);
}